In high performance computer system applications, data needs to be exchanged between the memory and the peripheral (input or output) devices at high speed. In the prior art, it is known to use a dedicated microprocessor to control the operation of the peripheral device as well as to control the transfer of data between the memory and the peripheral device (to or from). The microprocessor handles the required data transfer by means of programmed instructions. Usually, however, the transfer of data between the memory and the peripheral device (to or from) is accomplished over many cycles. This is accomplished by for example, loading the data into the accumulator of the processor, then writing the data to the memory or the peripheral device.
If programmed instructions controlling the processor to operate the transferred data between the memory and the peripheral device is not fast enough, a common solution is to use a DMA device.
A DMA device is a hardware device operating in conjunction with a processor to perform certain data transfers to or from the memory. DMA devices have the disadvantage of increasing hardware costs as well as complexities in initializing and controlling the DMA device. Further, there is time lost when the DMA device takes over from the processor and later returns control of the system buses back to the processor.